【笔记】网络原理2 - 互连模型,物理层,数据链路层,网络层及其相关协议
1. 五层模型
- 层层叠加,层层封装
2. 数据链路层中的一些概念
- MTU: 最大传输单元,每一种数据链路层协议都规定了最大能传送的帧的数据长度上限,
以太网的 MTU 最大为 1500bytes,最小为64bytes。
- 数据链路层会在数据包的左边(帧开始/结束符)右边(帧开始/结束符)都封装一些东西,封装成帧。通过帧开始结束符来判定当前帧从哪开始,从哪结束。为了防止误把数据当作帧的开始/结束符,链路上和开始/结束符同名的数据需要加上转义字符,解析的时候再去掉转义字符。
- FCS: 差错检验
- CSMA/CD 协议被称为载波侦听多路访问/冲突检测协议。使用CSMA/CD 的网络可以被称为以太网,它传输的是以太网帧。以太网帧的格式有
Ethernet V2
、IEEE802.3
等。为了正常检测正在发生的帧是否产生了冲突,以太网的帧至少需要 64bytes。交换机组成的网络虽然支持全双工,已不需要 CSMA/CD 协议了,但是传输的帧依旧是以太网帧,所以交换机组成的网络依旧可以称为以太网。 - PPP协议也是数据链路层的,不怎么熟悉,就不写了。
- 64bytes 的最小字节,如果从上层自下层的数据量都还不够,数据链路层会自动补全首部和尾部帧到 64bytes。
- 下图 Ethernet V2 的帧格式,帧只在数据链路层封装
- 为什么数据的长度至少是 46 字节?因为[64-(6+6+2+4)]=46bytes
- 如果数据包下发下来总长不够 46bytes 怎么办?如下图“填充”部分:
- 物理网卡在接收到一个帧之后,首先会进行差错校验,如通过则接收,若失败则丢弃。
- WireShark 抓到的帧一定没有 FCS,因为它抓到的是差错校验通过的帧,FCS 已经被硬件丢掉了。
3. 网络层中的一些概念
- IP 数据包,网络层数据包,通常称为包(package)
- 因为帧不能超过 1500bytes,所以超过 1500bytes 的数据在网络层会被切片(fragments)传输给数据链路层,每一片都有自己的网络层首部。
- 网络层标志字段用来表达切片,片偏移字段是 byte 的倍数。
- 网络层协议字段表达了数据使用的协议是什么,含义如下图:
- ARP, IP, ICMP 协议都是直接工作在网络层的协议。如果 wireshark 抓到的协议是 ICMP 协议发送的,那它一定只有三层(比如 ping )
生存时间(Time To Live)
:每个路由器在转发之前都会将 TTL 减 1,一旦减到 0 了,路由器就会返回错误而不会转发数据。Windows 系统的默认 TTL 是 128,其他的系统有区别。从 Ping 指令返回的 TTL可以用来推断目标 IP 过了大概经历了多少个路由器,甚至可以推测服务器大概率运行在哪个系统上的。
【笔记】网络原理2 - 互连模型,物理层,数据链路层,网络层及其相关协议
http://example.com/2024/07/21/[笔记]网络原理2 - 互连模型,物理层,数据链路层,网络层及其相关协议/